package com.imooc.security.data.provider.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author Created By Houce
 * @since 2020-07-22
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("SYS_USER")
public class User implements Serializable {

    private static final long serialVersionUID = 8745447708707530719L;

    @TableField(value = "USER_ID")
    @TableId(value = "USER_ID")
    private Long userId;

    /**
     * 0-新增或修改1-删除
     */
    @TableField(value = "CHANGE_TYPE")
    private Integer changeType;

    /**
     * 用户类型，0：集团用户；1：外部用户
     */
    @TableField(value = "USER_TYPE")
    private Integer userType;

    /**
     * 用户状态
     */
    @TableField(value = "USER_STATUS")
    private Integer userStatus;

    /**
     * 改变时间
     */
    @TableField(value = "CHANGE_TIME")
    private Date changeTime;

    /**
     * 登录名
     */
    @TableField(value = "UID")
    private String uid;

    /**
     * 密码
     */
    @TableField(value = "PASSWORD")
    private String password;

    /**
     * 姓名
     */
    @TableField(value = "USER_NAME")
    private String userName;

    /**
     * 用户中文姓
     */
    @TableField(value = "SN")
    private String sn;

    /**
     * 员工编号
     */
    @TableField(value = "EMPLOYEE_NUM")
    private String employeeNum;

    /**
     * 用户性别
     */
    @TableField(value = "GENDER")
    private Integer gender;

    /**
     * 生日
     */
    @TableField(value = "BIRTHDAY")
    private String birthday;

    /**
     * 民族
     */
    @TableField(value = "NATION")
    private String nation;

    /**
     * 国籍
     */
    @TableField(value = "COUNTRY")
    private String country;

    /**
     * 首选移动电话
     */
    @TableField(value = "PREFERRED_MOBILE")
    private String preferredMobile;

    /**
     * 政治面貌
     */
    @TableField(value = "RELIGION")
    private String religion;

    /**
     * 员工类型
     */
    @TableField(value = "EMPLOYEE_TYPE")
    private String employeeType;

    /**
     * 业务
     */
    @TableField(value = "FUNC")
    private String func;

    /**
     * 开始生效时间
     */
    @TableField(value = "START_TIME")
    private String startTime;

    /**
     * 结束生效时间
     */
    @TableField(value = "END_TIME")
    private String endTime;

    /**
     * 身份证
     */
    @TableField(value = "IDCARD_NUMBER")
    private String idCardNumber;

    /**
     * 用户通讯地址
     */
    @TableField(value = "POSTAL_ADDRESS")
    private String postalAddress;

    /**
     * 邮政编码
     */
    @TableField(value = "POSTAL_CODE")
    private String postalCode;

    /**
     * 移动电话
     */
    @TableField(value = "TEL_NUMBER")
    private String telNumber;

    /**
     * 照片
     */
    @TableField(value = "PHOTO")
    private String photo;

    /**
     * 显示顺序
     */
    @TableField(value = "DISPLAY_ORDER")
    private String displayOrder;

    /**
     * 单位编码
     */
    @TableField(value = "COMPANY_CODE")
    private String companyCode;

    /**
     * 单位简称
     */
    @TableField(value = "COMPANY_NAME")
    private String companyName;

    /**
     * 二级组织编码
     */
    @TableField(value = "SECOND_ORG_CODE")
    private String secondOrgCode;

    @TableField(value = "SECOND_ORG_NAME")
    private String secondOrgName;

    /**
     * 删除标记
     */
    @TableField(value = "DELETED_FLAG")
    private Integer deletedFlag;

    @TableField(value = "CREATED_DATE")
    private Date createdDate;

    @TableField(value = "UPDATED_DATE")
    private Date updatedDate;

    @TableField(value = "CREATED_BY")
    private Long createdBy;

    @TableField(value = "UPDATED_BY")
    private Long updatedBy;

    /**
     * 更新人名称
     */
    @TableField(value = "UPDATED_BY_NAME")
    private String updatedByName;

    /**
     * 创建人名称
     */
    @TableField(value = "CREATED_BY_NAME")
    private String createdByName;

}